// pages/search/index.js
// 引入request异步请求方法
import request from '../../utils/request.js'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    //储存当前输入框的值
    valueInput : '',
    // 记录之前输入框的值
    lastValue : '',
    // 设置开关，判断是否请求
    loading : false ,
    // 储存商品列表消息
    goodsMessage : [],
    // 储存历史查询记录
    historyList : [],
    // 商品信息展示样式
    current : 0
  },
  /**
 * 生命周期函数--监听页面加载
 */
  onLoad: function (options) {
  // 拿到本地储存的数据进行渲染
   let arr = wx.getStorageSync('history');
  //  判断是否有存，没存就改为空数组
    if (!Array.isArray(arr)){
        arr = [];
    }
  // 将本地存储的数据赋值给历史查询列表变量
   this.setData({
     historyList : arr
   })
  },
  // 输入框输入触发
  handleInput(e) {
    //console.log(e)
    this.setData({
      valueInput: e.detail.value.trim()
    })
    // 如果没有值则不展示
    if (!e.detail.value) {
      this.setData({
        goodsMessage: []
      })
      return;
    }
    // 展示商品搜索信息
    this.init();
  },
  // 封装请求商品搜索信息
   init(){
      // 请求开关
      if(this.data.loading == false){
         this.setData({
          //  关闭请求通道
           loading : true,
          //  储存之前文本框的值
           lastValue : this.data.valueInput
         })
      // 请求文章搜索数据
        request({
          url: '/goods/qsearch',
          data : {
            query : this.data.valueInput
          }
        }).then(res=>{
          // console.log(res)
          this.setData({
            goodsMessage : res.data.message,
            // 此次请求结束，开启下一次请求
            loading : false
          })
          // console.log(this.data.goodsMessage)
        })
        // 如果输入的值有更新，则重新请求一次
      if(this.data.lastValue !== this.data.valueInput){
         this.init();
      }
      }
   },
  // 点击取消按钮的操作
  handleCancel() {
    this.setData({
      valueInput: "",
      goodsMessage: []
    })
  },
  // 输入框失去焦点触发
  handleBlur(){
    // e.detail.value = "";
    // this.setData({
    //   goodsMessage : []
    // })
  },
  // 输入框按enter键触发
  handleConfirm(){
    if(!this.data.valueInput){
      return;
    }
    // 将新搜索的记录添加到数组
   this.data.historyList.unshift(this.data.valueInput);
    // 数组去重
    let arr = [...new Set(this.data.historyList)];
    // 将数组储存到本地
    wx.setStorageSync('history', arr);
    // 跳转到商品列表页面
    wx.redirectTo({
      url: '../goods_list/index?keyword=' +  this.data.valueInput 
    })
  },
  // 点击清空历史搜索
  handleClear(){
    this.setData({
      valueInput : "",
      historyList : []
    })
    // 清空本地存储
    wx.clearStorageSync();
  },
  // 判断点击是否为商品信息展示
  handleShowList(e){
    console.log(e)
    const { onlyid } = e.target.dataset;
    
    this.setData({
      current : onlyid
    })
    if (!onlyid){
      this.setData({
        goodsMessage: []
      })
    }
  }
})